package cn.com.yitong.demo.demo1.dao;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import sqlmap.DemoTable1;
import cn.com.yitong.component.cache.annotation.Cacheable;
import cn.com.yitong.framework.core.message.vo.ResponseMessageVO;
import cn.com.yitong.framework.core.util.query.Parameters;
import cn.com.yitong.framework.exception.QueryException;
import cn.com.yitong.framework.exception.UpdateException;
import cn.com.yitong.framework.mybatis.MyBatisSupport;

/**
 * @ClassName: DemoTable1DaoImpl
 * @Description: DAO实现
 * @author: 孙孟（sm@yitong.com.cn）
 * @date: 2015-9-7 上午9:54:59
 */
public class DemoTable1DaoImpl extends MyBatisSupport<DemoTable1> implements DemoTable1Dao{

	/* 
	 * (non Javadoc)
	 * @Title: pagedQuery
	 * @Description: TODO
	 * @param sqlKey
	 * @param params
	 * @return
	 * @throws QueryException
	 * @see cn.com.yitong.framework.mybatis.MyBatisSupport#pagedQuery(java.lang.String, cn.com.yitong.framework.core.util.query.Parameters)
	 */
//	//自动缓存
//	//自动缓存
//	//factory 缓存工厂（默认为defaultCacheFactory）
//	//enable 开启缓存（默认为false）
//	//expire 过期时间（默认使用cacheFactory默认配置，0：永不过期）
	@Cacheable(enable = true)
	@Override
	public ResponseMessageVO pagedQuery(String sqlKey, Parameters params) throws QueryException {
		return super.pagedQuery(sqlKey, params);
	}

	/* 
	 * (non Javadoc)
	 * @Title: queryDataByName
	 * @Description: 根据名称，查询数据
	 * @param name
	 * @return
	 * @throws QueryException
	 * @see cn.com.yitong.demo.demo1.dao.DemoTable1Dao#queryDataByName(java.lang.String)
	 */
//	//自动缓存
//	//factory 缓存工厂（默认为defaultCacheFactory）
//	//enable开启缓存（默认为false）
//	//expire 过期时间（默认使用cacheFactory默认配置，0：永不过期）
//	@Cacheable(enable = true)
	@SuppressWarnings("unchecked")
	public List<DemoTable1> queryDataByName(String name) throws QueryException{
		//sql key
		String sqlKey = "queryDataByName";
		//参数设置
		Map<String, Object> params = new HashMap<String, Object>();
		params.put("name", name);
		List<DemoTable1> list = (List<DemoTable1>) this.find(sqlKey, params);
		return list;
	}
	
	/* 
	 * (non Javadoc)
	 * @Title: queryDataByType
	 * @Description: 根据类型，查询数据
	 * @param typeId
	 * @return
	 * @throws QueryException
	 * @see cn.com.yitong.demo.demo1.dao.DemoTable1Dao#queryDataByType(java.lang.String)
	 */
	@SuppressWarnings("unchecked")
	public List<DemoTable1> queryDataByType(String typeId) throws QueryException{
		//sql key
		String sqlKey = "queryDataByType";
		//参数
		Map<String, Object> params = new HashMap<String, Object>();
		params.put("typeId", typeId);
		List<DemoTable1> list = (List<DemoTable1>) this.find(sqlKey, params);

		return list;
	}
	
	/* 
	 * (non Javadoc)
	 * @Title: executeUpdate
	 * @Description: 执行更新
	 * @param arg1
	 * @return
	 * @throws UpdateException
	 * @see cn.com.yitong.demo.demo1.dao.DemoTable1Dao#executeUpdate(java.lang.String)
	 */
	@Override
//	@CacheRemove(methodName="queryNews")
	public boolean executeUpdate(String arg1) throws UpdateException {
		// ... ...
		return true;
	}
}